package com.itheima.service.impl;

import com.itheima.dao.RoleDao;
import com.itheima.dao.UserDao;
import com.itheima.domain.Role;
import com.itheima.domain.User;
import com.itheima.service.UserService;

import org.springframework.stereotype.Service;

import java.util.List;

import javax.annotation.Resource;

/**
 * @author ZhangyiA
 * @describe:
 * @date 2021/06/27
 */

@Service("userService")
public class UserServiceImpl implements UserService {

    @Resource(name = "userDao")
    private UserDao userDao;

    @Resource(name = "roleDao")
    private RoleDao roleDao;


    public List<User> list() {
        // 只查询了 sys_user 表 , 没有用户的角色
        List<User> userList = userDao.findAll();
        // 获得用户的角色
        for(User user : userList){
            // 获得用户的 id
            long id = user.getId();
            // 将 id 作为参数 , 查询当前 userId 对应的 Role 集合数据
            List<Role> roles = roleDao.findRoleByUserId(id);
            user.setRoles(roles);
        }
        return userList;
    }

    public void save(User user, long[] roleIds) {
        // 像 sys_user 表中存储数据 , 并获取当前数据库给 user 生成的 user_id
        long user_id = userDao.save(user);

        // 第二步 像 sys_user_role 关系表中存储数据
        userDao.saveUserRole(user_id , roleIds);
    }

    public void del(long userId) {
        // 第一个操作删除 sys_user_role 关系表中的数据
        userDao.delUserRole(userId);
        // 第二个操作删除 sys_user 表中的数据
        userDao.del(userId);

    }

}
